DESCRIPTION: Model cell reconstitution after Hematopoietic Stem Cell Transplant (HSCT) before  ATI
[LONGITUDINAL]

input = {ke,rp,rs,rm,re,qdns,lambdapns,lambdapm,lambdanss,lambdasns,lambdame,log10Kp,log10Kps,log10Kpm,log10Kpe,kt,condP,V0,xi,fi,log10beta,tsa,twash,deltaM,deltaP,log10p1,log10kappa,log10theta,log10omega4,log10omega8,cw8,de,cde,log10I50,cI50,GM,ATI,fp100,ART,Transplant,Tx}

ATI= {use=regressor}
fp100 = {use=regressor}
ART = {use=regressor}
Transplant = {use=regressor}
Tx = {use=regressor}

PK:
depot(type=1, target=T, p=0.04*5*(1-fp100/100))
depot(type=1, target=Tp, p=0.04*5*fp100/100)

EQUATION:
odeType = stiff

W = 5
pb = 1
VolB = 60*W*1e3

TBI = 5
c = 23
f=0.9
deltaU = deltaP

dns = (qdns+1)*lambdanss
dnsp = qdns*lambdanss


Kp = 10^log10Kp
Ks = 10^(log10Kp-log10Kps)
Km = 10^(log10Kp-log10Kpm)
Ke = 10^(log10Kp-log10Kpe)

p = 10^log10p1
beta = 10^log10beta/VolB
kappa = 10^log10kappa/VolB
theta = 10^log10theta/VolB
I50 = 10^log10I50

qNSS = (rs/(lambdanss))*(Kp/Ks-1)
qPS  = (1/lambdapns)*(dns*qNSS-lambdasns)
qPM  = (1/lambdapm)*(rm*(Kp/Km-1))
qME  = (re/lambdame)*(Kp/Ke-1)


t0 = 0

Vzero = V0*1e3
E_0  = Kp/(qNSS*qPM*qME/qPS + qPM*qME/qPS + qME +1)
M_0  = qME*E_0
S_0  = (qPM/qPS)*M_0
NS_0 = qNSS*S_0
P_0  = qPS*S_0
Es_0 = 0
Pp_0 = 0
NSp_0 = 0
NSp2_0 = 0
Tp_0 = 0
T_0 = 0
Ip_0 = xi*c*Vzero/p
Iu_0 = (1-xi)*c*Vzero/p
V_0 = Vzero
Mp_0 = 0

; (a) Total body irradiation
TBItime = Transplant-TBI
if(t>=(TBItime) & (t<Transplant))
  psi = 1-Tx
else 
  psi = 1
end

; (b) ART
if(t<ART)
  alphaL = 0
else
  alphaL = 1/tsa
end

; (c) transplantation/ATI
if(t<Transplant)
  omega8 = 10^log10omega8
  omega4 = 10^log10omega4
  I50 = 10^log10I50
  dh = de*exp(0)
else
  omega8 = 10^(log10omega8+cw8)
  omega4 = 10^(log10omega4+cw4)
  I50 = 10^(log10I50+cI50)
  dh = de*exp(cde)
end

; (d) ATI
if(t>=ART & t<(ATI+twash+tsa))
  epsilon= 1
else
  epsilon =0
end



Total = NSp+NSp2+NS+S+M+E+Es+Ip+Iu+Mp
Infected = Ip+Iu+Mp

ddt_Tp   =  -ke*Tp
ddt_Pp   =  ke*Tp + rp*(1-(Total)/Kp)*Pp
ddt_NSp  =  lambdapns*Pp  - dnsp*NSp + lambdasns*NSp2
ddt_NSp2 =  lambdanss*NSp  + rs*(1-(NS+NSp+NSp2+S+M+E)/Ks)*NSp2
    
ddt_T   =  -ke*T
ddt_P   =  ke*T + rp*(1-(Total)/Kp)*P - condP*(1-psi)*kt*P
    
ddt_NS  =  lambdapns*P  - dns*NS + lambdasns*S - omega4*NS*(Infected)/(1+(Infected)/I50) - (1-psi)*kt*NS

ddt_S   =  lambdanss*NS + rs*(1-(Total)/Ks)*S - (1-epsilon)*beta*V*S + omega4*NS*(Infected)/(1+(Infected)/I50) - (1-psi)*kt*S
    
ddt_Mp = fi*xi*(1-epsilon)*beta*V*S - deltaM*(1+kappa*Es)*Mp - (1-psi)*kt*Mp

ddt_Ip  =  (1-fi)*xi*(1-epsilon)*beta*V*S - deltaP*(1+kappa*Es)*Ip + alphaL - (1-psi)*kt*Ip
ddt_Iu  =  (1-xi)*(1-epsilon)*beta*V*S - deltaU*(1+kappa*Es)*Iu  - (1-psi)*kt*Iu
ddt_V   =  p*(Ip+Mp)/(1+theta*Es) - c*V
    
ddt_M   =  lambdapm*(P+Pp) + rm*(1-(Total)/Km)*M + omega8*(1-2*f)*M*(Infected)/(1+(Infected)/I50) - (1-psi)*kt*M
ddt_E   =  lambdame*M + re*(1-(Total)/Ke)*E - (1-psi)*kt*E
    
ddt_Es  =  omega8*f*M*(Infected)/(1+(Infected)/I50)-dh*Es - (1-psi)*kt*Es


S_b = log10(max(pb*(S+Ip+Iu+Mp)/VolB, 1e-3))
NS_b = log10(max(pb*(NS+NSp+NSp2)/VolB, 1e-3))
NSp_b = log10(max(pb*(NSp+NSp2)/VolB, 1e-3))
CD4_b = log10(max(pb*(S+Ip+Iu+NS+NSp+NSp2+Mp)/VolB, 1e-3))
CD8_b =log10(max(pb*(M+E+Es)/VolB, 1e-3))
E_b = log10(max(pb*(E+Es)/VolB, 1e-3))
M_b = log10(max(pb*(M)/VolB, 1e-3))
V_b = log10(max(V/(VolB/10^3), 1e-3))

OUTPUT:
output = {S_b,NS_b,CD4_b,CD8_b,V_b,E_b,M_b,NSp_b}
